使用者在操作頁面或輸入網址後,要下載檔案(不局限於 PDF 檔案),可以使用 Ruby on Rails 內建的 send_file
來處理
下載的檔案不局限於 PDF 檔,可參考此 pr
# config/routes.rb
resources :shops do
collection do
get :download_pdf
end
end
---
# app/controllers/shops_controller.rb
def download_pdf
pdf_path = Rails.root.join('data/river_demo_pdf.pdf')
send_file pdf_path
end
---
# spec/requests/shops_spec.rb
describe "GET /download_pdf" do
subject { get download_pdf_shops_path, params: { format: :text } }
it "send correct file" do
allow_any_instance_of(ShopsController).to receive(:send_file).with(Rails.root.join('data/river_demo_pdf.pdf'))
subject
end
end
一開始不知道時,會想說該如何實作,才能讓使用者可以下載檔案,後來發現 Ruby on Rails 已經幫我們做了許多事情,讓我們在實作上,可以簡單幾行便實現該功能,真的非常快速又方便~
鐵人賽文章連結:https://ithelp.ithome.com.tw/articles/10271932
medium 文章連結:https://link.medium.com/91hPYYFVPjb
本文同步發布於 小菜的 Blog https://riverye.com/
備註:之後文章修改更新,以個人部落格為主